[レポート]Building multi-account, multi-region apps with Terraform Stacks (DOP206) # AWSreInvent
AWSre:Invent2024のセッション【Building multi-account, multi-region apps with Terraform Stacks (DOP206)】のレポートを本記事ではお伝えします。
概要
Efficiently managing complex application platforms remains a significant challenge for many organizations. In this session, discover how to streamline the provisioning and management of infrastructure across diverse environments and simplify complex multilayered deployments with new capabilities in HCP Terraform. Learn how to utilize Terraform to enhance your infrastructure management practices and increase overall operational efficiency. This presentation is brought to you by HashiCorp, an AWS Partner.
セッション動画の概要から引用
セッション動画
レポート
Multi-environment use cases
複数の環境を利用するユースケースとして以下を上げていました。
- Platform Infrastructure
- ネットワーク関連コンポーネント
- IAMロールやセキュリティ設定
- Workload Resource
- Kubernetesクラスター
- アプリケーションコンポーネント
それぞれの特徴は以下です。
上記のユースケースにて、デプロイメントをどうやって管理するのかが課題になっています。
具体的には以下のような課題です。
- コンピューティングリソースより先にネットワーキングリソースをデプロイする必要がある(依存関係)
- 開発環境デプロイ後に本番環境をデプロイ(順序制御)
- デプロイに時間がかかる
Declarative Terraform deployments
デプロイメントをコード化(Infrastructure as Code AS Codeという表現がされていました)することで、課題を解決します。
Terraform Stacksでは、以下の概念を使ってデプロイメントをコード化します。
- Components
- Deployments
- Orchestration
- Deferred Changes
Modeling deployments with Terraform Stacks
Terraform Stacksの概念を使って、どうコードをモデリングしていくかを説明していました。
例えば、
- VPC・IAM Role・Permission SetをComponentsとしてそれぞれ定義
- 先程の3つのComponentsを含めたDeploymentsを定義
- Deploymentsに対してOrchestration Ruleを定義
といった感じです。
以下はPlatform Infrastructureのモデリングですが、Workload Resourceに対しても同様にモデリングを行っていました。
Demo
Terraform Stacksを使って、以下をデプロイするデモを行っていました。
- 複数アカウントにIAM Role
- 複数OUにIAM Role
- EKSクラスターとKubernetesリソース
Components,Deployments,Orchestration,Deferred Changesの4つの概念を使ったデモでした。
デモで使われたコードは以下で公開されています。
Recap
Terraform Stacksによる運用効率化の3つのポイントを上げていました。
- スケーラビリティ: 複数環境をシンプルな記述で表R現
- 可視性の向上: 複数環境のデプロイステータスを統合されたビューで確認
- 統合管理: 依存関係の管理
最後には、段階的なプロセス(導入 -> 標準化 -> スケーリング)が大事であることをお話していました。
以下のスライドはTerraform Stacksに限らず、IaCを初めたい場合に参考になりそうですね。
おわりに
Terraform Stacksの基本概念から動作をデモを交えて学ぶことができるセッションでした。
OU内のアカウントに対して、一括でリソースを作成するデモが印象的でした。
TerraformでもCloudFormation StackSetsみたいなことが簡単にできて良いですね。
Terraform Stacksは、複数環境・複数リージョンでインフラをデプロイする際の繰り返しを削減し、依存関係も管理してくれます。
2024年12月時点では、パブリックプレビューですがGAが楽しみです。
以上、AWS事業本部の佐藤(@chari7311)でした。
関連ブログ